Manager: Open Transport



Apple has identified the Open Transport functions, structures, and constants that are most commonly used by a large number of applications and by Mac OS system software. Carbon will support this key subset of the current interface.

Carbon, for example, will support the Open Transport endpoint routines for IP protocols. These routines are defined in the header file OpenTransport.h and OpenTptInternet.h.

Carbon will not, however, support functions that rely on AppleTalk protocols.

For more information about Open Transport, you should visit the web site

<http://devworld.apple.com/dev/opentransport/>

which has extensive references to OT documentation and samples. Specifically, you should read Inside Macintosh: Networking with Open Transport, available in HTML and PDF format from the above site.

You may have to revise your code if it uses Open Transport in one of the following ways:

* Your application uses a function that directly gains access to a network port. Ports are read-only in Carbon. In Mac OS X, code that communicates directly with network interfaces must use the IOKit API.

* Your application uses the connection-oriented transaction-based endpoint feature of Open Transport. This feature will not be supported in Carbon. Removal of this capability should affect only users of AppleTalk protocols such as ASP. Note that the Mac OS does not currently have a native ASP implementation.

* Your application uses Open Transport's XTI interfaces or UNIX® stream interfaces. Carbon will not support these interfaces. Note however that you can obtain similar functionality using supported high-level functions.

An important change for Carbon applications using Open Transport is the addition of client context parameters to a number of OT functions. Each client of Open Transport now has its own client context so that OT can track resources it allocates on behalf of the client. An OT client means an application or a shared library. OT resources are objects like endpoints, timer tasks, and blocks of memory.

Carbon introduces a new type, OTClientContextPtr, that represents the OT client context. This new type is passed as an extra parameter to functions that allocate OT resources. Before Carbon, the determination of the OT client context was performed by the Open Transport static libraries that you linked to your application. Because the determination of the OT client context is now explicit, the same Carbon binary can run on MacOS 8 and MacOS X, and you do not have to link your application to the static libraries.

There are two new functions to explicitly create and destroy OT client contexts:



OTAllocClientContext

OTFreeClientContext



The interface to InitOpenTransport has changed so that it now takes a client context pointer and a flags parameter indicating whether OT is being initialized for an application or a shared library.

The following routines now take a client context:



CloseOpenTransport

OTAlloc

OTAllocMem

OTAsyncOpenAppleTalkServices

OTAsyncOpenEndpoint

OTAsyncOpenInternetServices

OTAsyncOpenMapper

OTCreateDeferredTask

OTCreateTimerTask

OTOpenAppleTalkServices

OTOpenEndpoint

OTOpenInternetServices

OTOpenMapper



As a convenience, applications may pass a null pointer to these routines and Open Transport will use the context that was passed to InitOpenTransport. However, shared libraries must always pass a valid OTClientContextPtr.

Carbon applications must pass UPPs instead of proc pointers for Open Transport callback routines. There are three new functions to create these UPPs:



OTNotifyUPP replaces OTNotifyProcPtr

OTProcessUPP replaces OTProcessProcPtr

OTListSearchUPP replaces OTListSearchProcPtr



There are corresponding routines to allocate and free those UPPs:



NewOTNotifyUPP

DisposeOTNotifyUPP

NewOTProcessUPP

DisposeOTProcessUPP

NewOTListSearchUPP

DisposeOTListSearchUPP



The following routines have been modified to take UPPs instead of proc pointers.

Routines taking an OTNotifyUPP:



OTAsyncOpenAppleTalkServices

OTAsyncOpenInternetServices

OTInstallNotifier

OTAsyncOpenEndpoint

OTAsyncOpenMapper



Routines taking an OTProcessUPP:



OTCreateTimerTask

OTCreateDeferredTask



Routines taking an OTListSearchUPP:



OTFindLink

OTFindAndRemoveLink

Modified  CloseOpenTransport

In Carbon, the CloseOpenTransport function takes an additional parameter, an OTClientContextPtr, which can be NULL for applications. Other types of clients must provide a valid client context pointer.

Modified  InitOpenTransport

In Carbon, the InitOpenTransport function takes two additional parameters: a client context pointer and a flags parameter.

The client context pointer must have been created previously by the OTAllocClientContext function.

The flags parameter indicates whether OT should be initialized for application use or for some other target (for example, plug-ins that run in an application context but not the application itself).

Unsupported  InitOpenTransportUtilities

Use InitOpenTransport instead.

Supported  OTAccept

Supported  OTAckSends

Supported  OTAddFirst

Supported  OTAddLast

Supported  OTAlloc

Supported  OTAllocMem

Supported  OTAsyncOpenAppleTalkServices

Supported  OTAsyncOpenEndpoint

Supported  OTAsyncOpenInternetServices

Supported  OTAsyncOpenMapper

Unsupported  OTAsyncOpenProvider

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTATalkGetInfo

Supported  OTATalkGetLocalZones

Supported  OTATalkGetMyZone

Supported  OTATalkGetZoneList

Supported  OTAtomicAdd16

Supported  OTAtomicAdd32

Supported  OTAtomicAdd8

Supported  OTAtomicClearBit

Supported  OTAtomicSetBit

Supported  OTAtomicTestBit

Supported  OTBind

Unsupported  OTCancelReply

Open Transport's connection-oriented transaction-based endpoint feature will not be supported.

Unsupported  OTCancelRequest

Open Transport's connection-oriented transaction-based endpoint feature will not be supported.

Supported  OTCancelSynchronousCalls

Unsupported  OTCancelSystemTask

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  OTCancelUReply

Unsupported  OTCancelURequest

Unsupported  OTCanLoadLibraries

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTCanMakeSyncCall

Unsupported  OTChangePortState

OT ports are read only in Carbon. In Mac OS X, code that communicates directly with network interfaces must use the IOKit API.

Supported  OTCloseProvider

Supported  OTCompareAndSwap16

Supported  OTCompareAndSwap32

Supported  OTCompareAndSwap8

Supported  OTCompareAndSwapPtr

Supported  OTConnect

Supported  OTCountDataBytes

Supported  OTCreateDeferredTask

Unsupported  OTCreateOptions

Unsupported  OTCreateOptionString

Supported  OTCreatePortRef

Unsupported  OTCreateSystemTask

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTDelay

Supported  OTDeleteName

Supported  OTDeleteNameByID

Supported  OTDequeue

Supported  OTDestroyConfiguration

Supported  OTDestroyDeferredTask

Unsupported  OTDestroySystemTask

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTDontAckSends

Supported  OTElapsedMicroseconds

Supported  OTElapsedMilliseconds

Supported  OTEnqueue

Unsupported  OTEnterGate

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  OTEnterInterrupt

Supported  OTEnterNotifier

Supported  OTFindAndRemoveLink

Supported  OTFindLink

Supported  OTFindOption

Supported  OTFindPort

Supported  OTFindPortByRef

Supported  OTFree

Supported  OTFreeMem

Supported  OTGetBusTypeFromPortRef

Supported  OTGetClockTimeInSecs

Supported  OTGetDeviceTypeFromPortRef

Supported  OTGetEndpointInfo

Supported  OTGetEndpointState

Supported  OTGetFirst

Supported  OTGetIndexedLink

Supported  OTGetIndexedPort

Supported  OTGetLast

Unsupported  OTGetMessage

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  OTGetPriorityMessage

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTGetProtAddress

Unsupported  OTGetProviderPortRef

Due to architectural changes Carbon will not support this function.

Supported  OTGetSlotFromPortRef

Supported  OTGetTimeStamp

Supported  OTIdle

Supported  OTInetAddressToName

Supported  OTInetGetInterfaceInfo

Supported  OTInetHostToString

Supported  OTInetMailExchange

Supported  OTInetQuery

Supported  OTInetStringToAddress

Supported  OTInetStringToHost

Supported  OTInetSysInfo

Supported  OTInitDNSAddress

Unsupported  OTInitGate

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTInitInetAddress

Supported  OTInstallNotifier

Supported  OTIoctl

Supported  OTIsAckingSends

Supported  OTIsAtInterruptLevel

Supported  OTIsBlocking

Supported  OTIsInList

Supported  OTIsSynchronous

Unsupported  OTLeaveGate

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  OTLeaveInterrupt

Supported  OTLeaveNotifier

Supported  OTLIFODequeue

Supported  OTLIFOEnqueue

Supported  OTLIFOStealList

Supported  OTListen

Supported  OTLook

Supported  OTLookupName

Supported  OTMemcmp

Supported  OTMemcpy

Supported  OTMemmove

Supported  OTMemset

Supported  OTMemzero

Supported  OTNextOption

Supported  OTOpenAppleTalkServices

Supported  OTOpenInternetServices

Supported  OTOpenMapper

Unsupported  OTOpenProvider

Due to architectural changes, Carbon will not support this function.

Supported  OTOptionManagement

Unsupported  OTPutMessage

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  OTPutPriorityMessage

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTRcv

Supported  OTRcvConnect

Supported  OTRcvDisconnect

Supported  OTRcvOrderlyDisconnect

Unsupported  OTRcvReply

Open Transport's connection-oriented transaction-based endpoint feature will not be supported.

Unsupported  OTRcvRequest

Open Transport's connection-oriented transaction-based endpoint feature will not be supported.

Supported  OTRcvUData

Supported  OTRcvUDErr

Unsupported  OTRcvUReply

Unsupported  OTRcvURequest

Unsupported  OTRegisterAsClient



Supported  OTRegisterName

Unsupported  OTRegisterPort

Due to architectural changes, Carbon will not support this function.

Supported  OTRemoveFirst

Supported  OTRemoveLast

Supported  OTRemoveLink

Supported  OTRemoveNotifier

Supported  OTResolveAddress

Supported  OTReverseList

Supported  OTScheduleDeferredTask



Unsupported  OTScheduleInterruptTask



Unsupported  OTScheduleSystemTask

This function will not be supported because Apple has not identified a specific developer need for it.

Supported  OTSetAsynchronous

Supported  OTSetBlocking

Supported  OTSetBusTypeInPortRef

OT ports are read only in Carbon. In Mac OS X, code that communicates directly with network interfaces must use the IOKit API.

Supported  OTSetDeviceTypeInPortRef

OT ports are read only in Carbon. In Mac OS X, code that communicates directly with network interfaces must use the IOKit API.

Supported  OTSetNonBlocking

Supported  OTSetSynchronous

Supported  OTSnd

Supported  OTSndDisconnect

Supported  OTSndOrderlyDisconnect

Unsupported  OTSndReply

Open Transport's connection-oriented transaction-based endpoint feature will not be supported.

Unsupported  OTSndRequest

Open Transport's connection-oriented transaction-based endpoint feature will not be supported.

Supported  OTSndUData

Unsupported  OTSndUReply

Unsupported  OTSndURequest

Supported  OTStrCat

Supported  OTStrCopy

Supported  OTStrEqual

Supported  OTStrLength

Supported  OTSubtractTimeStamps

Unsupported  OTSync

Due to architectural changes, Carbon will not support this function.

Supported  OTTimeStampInMicroseconds

Supported  OTTimeStampInMilliseconds

Unsupported  OTTransferProviderOwnership

Due to architectural changes, Carbon will not support this function.

Supported  OTUnbind

Unsupported  OTUnregisterAsClient

Apple has not identified a specific developer need for this function.

Unsupported  OTUnregisterPort

Due to architectural changes we do not expect to be able to support this function.

Supported  OTUseSyncIdleEvents

Unsupported  OTWhoAmI

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  strlog

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_accept

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_alloc

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_asynchronous

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_bind

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_blocking

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_cancelreply

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_cancelrequest

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_cancelsynchronouscalls

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_cancelureply

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_cancelurequest

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_close

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_connect

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_error

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_free

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_getinfo

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_getprotaddr

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_getstate

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_installnotifier

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_isnonblocking

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_issynchronous

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_listen

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_look

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_nonblocking

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_open

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_optmgmt

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcv

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvconnect

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvdis

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvrel

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvreply

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvrequest

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvudata

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvuderr

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvureply

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_rcvurequest

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_removenotifier

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_resolveaddr

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_snd

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_snddis

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sndrel

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sndreply

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sndrequest

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sndudata

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sndureply

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sndurequest

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_sync

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_synchronous

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_unbind

This function will not be supported because Apple has not identified a specific developer need for it.

Unsupported  t_usesyncidleevents

This function will not be supported because Apple has not identified a specific developer need for it.

[Table of Contents] [Manager Index] [Function Index]

Generated on: 10/6/99. Copyright 1999 Apple Computer, Inc. All rights reserved.